//
//  HTTPRequestTool.h
//  TestByFF
//
//  Created by hanxifeng on 16/7/13.
//  Copyright © 2016年 haixu. All rights reserved.
//

#import <Foundation/Foundation.h>

typedef enum HTTPErrorStatus{
    HTTPErrorStatusTimeOut = -1001,       //请求超时
    HTTPErrorStatusNotConnect = -1009     //请求失败
}HTTPErrorStatus;

/**
 *  成功回调
 *  @param JSON           返回的json数据格式
 *  @param responseString 返回数据的字符串形式
 */
typedef void (^successBlock)(id JSON,NSString *responseString);
/**
 *  失败回调
 *  @param error       错误对象
 */
typedef void (^failureBlock)(NSError *error);
/**
 *  上传进度回调
 *  @param progress      上传进度对象
 *  @param progressFloat 上传进度比 0-1
 */
typedef void(^progressBlock)(NSProgress *progress,float progressFloat);



@interface HTTPRequestTool : NSObject

/**
 *  GET
 *  @param urlStr    url
 *  @param paramsDic 参数字典
 *  @param success   成功回调
 *  @param failure   失败回调
 */
+(void)GET:(NSString *)urlStr params:(NSDictionary *)paramsDic success:(successBlock)success failure:(failureBlock)failure;

/**
 *  POST
 *  @param urlStr    url
 *  @param paramsDic 参数字典
 *  @param success   成功回调
 *  @param failure   失败回调
 */
+(void)POST:(NSString *)urlStr params:(NSDictionary *)paramsDic success:(successBlock)success failure:(failureBlock)failure;

/**
 *  上传图片POST
 *  @param urlStr       url
 *  @param params       普通参数
 *  @param files        上传图片的数据 key是图片的key value是图片的data
 *  @param progress     上传进度回调
 *  @param success      成功回调
 *  @param failure      失败回调
 */
+(void)UploadPhoto:(NSString *)urlStr params:(NSDictionary *)paramsDic files:(NSDictionary *)filesDic progress:(progressBlock)progress success:(successBlock)success failure:(failureBlock)failure;



/**
 *  上传Data(语音视频图片)POST
 *  files 格式
 *  array(dic{fileKey:@"",fileValue:data,fileContentType:@""},dic{fileKey:@"",fileValue:data,fileContentType:@""})
 *  fileContentType不传默认image/png
 *  @param urlStr       url
 *  @param params       普通参数
 *  @param files        上传Data数据 array(dic[fileKey,fileValue,fileContentType])
 *  @param progress     上传进度回调
 *  @param success      成功回调
 *  @param failure      失败回调
 */
+(void)UploadFile:(NSString *)urlStr params:(NSDictionary *)paramsDic files:(NSArray *)filesArray progress:(progressBlock)progress success:(successBlock)success failure:(failureBlock)failure;


@end
